using System.Collections.Generic;

namespace JGSY.CMS.LowCode.Platform.Application.DTOs
{
    /// <summary>
    /// 风险评估结果数据传输对象
    /// 用于传输风险评估的计算结果和风险等级信息
    /// </summary>
    public class RiskAssessmentResultDto
    {
        /// <summary>
        /// 风险评分
        /// 计算得出的数值化风险分数
        /// </summary>
        public double Score { get; set; }
        
        /// <summary>
        /// 风险等级
        /// 基于评分确定的风险等级，如：低、中、高、极高等
        /// </summary>
        public string Level { get; set; } = string.Empty;
        
        /// <summary>
        /// 风险因子详情
        /// 各个风险因子的详细评分信息
        /// </summary>
        public RiskFactorsDto Factors { get; set; } = new();
        
        /// <summary>
        /// 安全建议
        /// 基于风险评估结果提供的安全改进建议列表
        /// </summary>
        public List<string> Recommendations { get; set; } = new();
    }

    /// <summary>
    /// 风险因子数据传输对象
    /// 用于传输各种风险因子的评分详情
    /// </summary>
    public class RiskFactorsDto
    {
        /// <summary>
        /// 设备信任度
        /// 设备的可信任程度评分
        /// </summary>
        public double DeviceTrust { get; set; }
        
        /// <summary>
        /// 位置一致性
        /// 用户登录位置的一致性评分
        /// </summary>
        public double LocationConsistency { get; set; }
        
        /// <summary>
        /// 时间模式
        /// 用户登录时间模式的规律性评分
        /// </summary>
        public double TimePattern { get; set; }
        
        /// <summary>
        /// 登录频率
        /// 用户登录频率的正常性评分
        /// </summary>
        public double LoginFrequency { get; set; }
        
        /// <summary>
        /// 行为模式
        /// 用户行为模式的一致性评分
        /// </summary>
        public double BehaviorPattern { get; set; }
    }
}
